﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Interface;


namespace Model
{
    public class Team : ITeam
    {

        #region Fields

        private int _teamID;
        private int _standNr;
        private string _teamNavn;
        private string _ansvarligElev;
        private string _ansvarligMail;
        private string _skole;
        private string _underviser;
        private string _underviserMail;

        private List<Bedømmelse> _bedømmelser;

        #endregion

        #region Properties

        public int TeamID
        {
            get { return _teamID; }
            set { _teamID = value; }
        }

        public List<Bedømmelse> Bedømmelser
        {
            get { return _bedømmelser; }
            set { _bedømmelser = value; }
        }


        public int StandNr
        {
            get { return _standNr; }
            set { _standNr = value; }
        }

        public string TeamNavn
        {
            get { return _teamNavn; }
            set { _teamNavn = value; }
        }

        public string AnsvarligElev
        {
            get { return _ansvarligElev; }
            set { _ansvarligElev = value; }
        }

        public string AnsvarligMail
        {
            get { return _ansvarligMail; }
            set { _ansvarligMail = value; }
        }

        public string Skole
        {
            get { return _skole; }
            set { _skole = value; }
        }

        public string Underviser
        {
            get { return _underviser; }
            set { _underviser = value; }
        }

        public string UnderviserMail
        {
            get { return _underviserMail; }
            set { _underviserMail = value; }
        }

        #endregion

        #region Creation

        public static Team CreateTeam(int standNr, string teamNavn, string ansvarligElev, string ansvarligMail, string skole, string underviser, string underviserMail)
        {
            return new Team
            {
                StandNr = standNr,
                TeamNavn = teamNavn,
                AnsvarligElev = ansvarligElev,
                AnsvarligMail = ansvarligMail,
                Skole = skole,
                Underviser = underviser,
                UnderviserMail = underviserMail
            };
        }

        public Team(int standNr, string teamNavn, string ansvarligElev, string ansvarligMail, string skole, string underviser, string underviserMail)
        {
            _standNr = standNr;
            _teamNavn = teamNavn;
            _ansvarligElev = ansvarligElev;
            _ansvarligMail = ansvarligMail;
            _skole = skole;
            _underviser = underviser;
            _underviserMail = underviserMail;
        }

        protected Team()
        {
        }
        

        #endregion

        #region Public Interface

        public void LavBedømmelse(int point, Kategori kategori)
        {
            Bedømmelse bedømmelse = new Bedømmelse(point, kategori);
            _bedømmelser.Add(bedømmelse);
        }

        #endregion
      
    }
}
